from datetime import timedelta
import logging

from redis import StrictRedis


class Config(object): # 自定义配置类
    DEBUG = True # 开启调试模式
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/info16" # mysql连接地址
    SQLALCHEMY_TRACK_MODIFICATIONS = False # 是否追踪数据库变化
    REDIS_HOST = "127.0.0.1" # redis的ip地址
    REDIS_PORT = 6379 # redis的端口号
    SESSION_TYPE = 'redis'# session储存的数据库类型
    SESSION_REDIS = StrictRedis(host=REDIS_HOST,port=REDIS_PORT) # 设置redis储存使用的redis连接对象
    SESSION_USE_SIGNER = True # 对cookie中保存的sessionid进行加密（需要使用app的秘钥）
    SECRET_KEY = "UfzQNkWUHIgjqWFvL8yG1IQHfXdULeGXLiYsBl2NT0hmnWIOmavhBeCKKS21UHtu"
    # 应用秘钥
    PERMANENT_SESSION_LIFETIME = timedelta(days=7) # 设置session储存时间（session会默认进行持久化）
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True # 设置数据发生修改后自动保存（自动commit）数据

# 定义开发环境的配置
class DevelopConfig(Config):
    DEBUG = True
    LOGLEVEL = logging.DEBUG
# 定义生产环境的配置
class ProductConfig(Config):
    DEBUG = False
    LOGLEVEL = logging.ERROR
# 设置配置类 （用于在main函数中调用开发环境与生产环境）
config_change_dict = {
        "dev":DevelopConfig,
        "pro":ProductConfig
    }